// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ocv.calib3d_c.pas' rev: 30.00 (Windows)

#ifndef Ocv_Calib3d_cHPP
#define Ocv_Calib3d_cHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <ocv.core.types_c.hpp>
#include <ocv.compat.hpp>

//-- user supplied -----------------------------------------------------------

namespace Ocv
{
namespace Calib3d_c
{
//-- forward type declarations -----------------------------------------------
struct TCvPOSITObject;
struct TCvStereoBMState;
//-- type declarations -------------------------------------------------------
typedef TCvPOSITObject *PCvPOSITObject;

struct DECLSPEC_DRECORD TCvPOSITObject
{
public:
	int N;
	float *inv_matr;
	float *obj_vecs;
	float *img_vecs;
};


typedef TCvStereoBMState *pCvStereoBMState;

struct DECLSPEC_DRECORD TCvStereoBMState
{
public:
	int preFilterType;
	int preFilterSize;
	int preFilterCap;
	int SADWindowSize;
	int minDisparity;
	int numberOfDisparities;
	int textureThreshold;
	int uniquenessRatio;
	int speckleWindowSize;
	int speckleRange;
	int trySmallerWindows;
	Ocv::Core::Types_c::TCvRect roi1;
	Ocv::Core::Types_c::TCvRect roi2;
	int disp12MaxDiff;
	Ocv::Core::Types_c::TCvMat *preFilteredImg0;
	Ocv::Core::Types_c::TCvMat *preFilteredImg1;
	Ocv::Core::Types_c::TCvMat *slidingSumBuf;
	Ocv::Core::Types_c::TCvMat *cost;
	Ocv::Core::Types_c::TCvMat *disp;
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 CV_FM_7POINT = System::Int8(0x1);
static const System::Int8 CV_FM_8POINT = System::Int8(0x2);
static const System::Int8 CV_LMEDS = System::Int8(0x4);
static const System::Int8 CV_RANSAC = System::Int8(0x8);
static const System::Int8 CV_FM_LMEDS_ONLY = System::Int8(0x4);
static const System::Int8 CV_FM_RANSAC_ONLY = System::Int8(0x8);
static const System::Int8 CV_FM_LMEDS = System::Int8(0x4);
static const System::Int8 CV_FM_RANSAC = System::Int8(0x8);
static const System::Int8 CV_ITERATIVE = System::Int8(0x0);
static const System::Int8 CV_EPNP = System::Int8(0x1);
static const System::Int8 CV_P3P = System::Int8(0x2);
static const System::Int8 CV_CALIB_CB_ADAPTIVE_THRESH = System::Int8(0x1);
static const System::Int8 CV_CALIB_CB_NORMALIZE_IMAGE = System::Int8(0x2);
static const System::Int8 CV_CALIB_CB_FILTER_QUADS = System::Int8(0x4);
static const System::Int8 CV_CALIB_CB_FAST_CHECK = System::Int8(0x8);
static const System::Int8 CV_CALIB_USE_INTRINSIC_GUESS = System::Int8(0x1);
static const System::Int8 CV_CALIB_FIX_ASPECT_RATIO = System::Int8(0x2);
static const System::Int8 CV_CALIB_FIX_PRINCIPAL_POINT = System::Int8(0x4);
static const System::Int8 CV_CALIB_ZERO_TANGENT_DIST = System::Int8(0x8);
static const System::Int8 CV_CALIB_FIX_FOCAL_LENGTH = System::Int8(0x10);
static const System::Int8 CV_CALIB_FIX_K1 = System::Int8(0x20);
static const System::Int8 CV_CALIB_FIX_K2 = System::Int8(0x40);
static const System::Byte CV_CALIB_FIX_K3 = System::Byte(0x80);
static const System::Word CV_CALIB_FIX_K4 = System::Word(0x800);
static const System::Word CV_CALIB_FIX_K5 = System::Word(0x1000);
static const System::Word CV_CALIB_FIX_K6 = System::Word(0x2000);
static const System::Word CV_CALIB_RATIONAL_MODEL = System::Word(0x4000);
static const System::Word CV_CALIB_THIN_PRISM_MODEL = System::Word(0x8000);
static const int CV_CALIB_FIX_S1_S2_S3_S4 = int(0x10000);
static const System::Word CV_CALIB_FIX_INTRINSIC = System::Word(0x100);
static const System::Word CV_CALIB_SAME_FOCAL_LENGTH = System::Word(0x200);
static const System::Word CV_CALIB_ZERO_DISPARITY = System::Word(0x400);
static const System::Int8 CV_STEREO_BM_NORMALIZED_RESPONSE = System::Int8(0x0);
static const System::Int8 CV_STEREO_BM_XSOBEL = System::Int8(0x1);
static const System::Int8 CV_STEREO_BM_BASIC = System::Int8(0x0);
static const System::Int8 CV_STEREO_BM_FISH_EYE = System::Int8(0x1);
static const System::Int8 CV_STEREO_BM_NARROW = System::Int8(0x2);
extern "C" PCvPOSITObject __cdecl cvCreatePOSITObject(Ocv::Core::Types_c::pCvPoint3D32f points, int point_count);
extern "C" void __cdecl cvPOSIT(PCvPOSITObject posit_object, Ocv::Core::Types_c::pCvPoint2D32f imagePoints, double focal_length, const Ocv::Core::Types_c::TCvTermCriteria criteria, System::PSingle rotation_matrix, System::PSingle translation_vector);
extern "C" void __cdecl cvReleasePOSITObject(PCvPOSITObject &posit_object);
extern "C" int __cdecl cvRANSACUpdateNumIters(double p, double err_prob, int model_points, int max_iters);
extern "C" void __cdecl cvConvertPointsHomogeneous(const Ocv::Core::Types_c::pCvMat src, Ocv::Core::Types_c::pCvMat dst);
extern "C" int __cdecl cvFindFundamentalMat(const Ocv::Core::Types_c::pCvMat points1, const Ocv::Core::Types_c::pCvMat points2, Ocv::Core::Types_c::pCvMat fundamental_matrix, int method = 0x8, double param1 = 3.000000E+00, double param2 = 9.900000E-01, Ocv::Core::Types_c::pCvMat status = (Ocv::Core::Types_c::pCvMat)(0x0));
extern "C" void __cdecl cvComputeCorrespondEpilines(const Ocv::Core::Types_c::pCvMat points, int which_image, const Ocv::Core::Types_c::pCvMat fundamental_matrix, Ocv::Core::Types_c::pCvMat correspondent_lines);
extern "C" void __cdecl cvTriangulatePoints(Ocv::Core::Types_c::pCvMat projMatr1, Ocv::Core::Types_c::pCvMat projMatr2, Ocv::Core::Types_c::pCvMat projPoints1, Ocv::Core::Types_c::pCvMat projPoints2, Ocv::Core::Types_c::pCvMat points4D);
extern "C" void __cdecl cvCorrectMatches(Ocv::Core::Types_c::pCvMat F, Ocv::Core::Types_c::pCvMat points1, Ocv::Core::Types_c::pCvMat points2, Ocv::Core::Types_c::pCvMat new_points1, Ocv::Core::Types_c::pCvMat new_points2);
extern "C" void __cdecl cvGetOptimalNewCameraMatrix(const Ocv::Core::Types_c::pCvMat camera_matrix, const Ocv::Core::Types_c::pCvMat dist_coeffs, const Ocv::Core::Types_c::TCvSize image_size, double alpha, Ocv::Core::Types_c::pCvMat new_camera_matrix, const Ocv::Core::Types_c::TCvSize new_imag_size, Ocv::Core::Types_c::pCvRect valid_pixel_ROI = (Ocv::Core::Types_c::pCvRect)(0x0), int center_principal_point = 0x0);
extern "C" int __cdecl cvRodrigues2(const Ocv::Core::Types_c::pCvMat src, Ocv::Core::Types_c::pCvMat dst, Ocv::Core::Types_c::pCvMat jacobian = (Ocv::Core::Types_c::pCvMat)(0x0));
extern "C" int __cdecl cvFindHomography(const Ocv::Core::Types_c::pCvMat src_points, const Ocv::Core::Types_c::pCvMat dst_points, Ocv::Core::Types_c::pCvMat homography, int method = 0x0, double ransacReprojThreshold = 3.000000E+00, Ocv::Core::Types_c::pCvMat mask = (Ocv::Core::Types_c::pCvMat)(0x0));
extern "C" void __cdecl cvRQDecomp3x3(const Ocv::Core::Types_c::pCvMat matrixM, Ocv::Core::Types_c::pCvMat matrixR, Ocv::Core::Types_c::pCvMat matrixQ, Ocv::Core::Types_c::pCvMat matrixQx = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat matrixQy = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat matrixQz = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvPoint3D64f eulerAngles = (Ocv::Core::Types_c::pCvPoint3D64f)(0x0));
extern "C" void __cdecl cvDecomposeProjectionMatrix(const Ocv::Core::Types_c::pCvMat projMatr, Ocv::Core::Types_c::pCvMat calibMatr, Ocv::Core::Types_c::pCvMat rotMatr, Ocv::Core::Types_c::pCvMat posVect, Ocv::Core::Types_c::pCvMat rotMatrX = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat rotMatrY = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat rotMatrZ = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvPoint3D64f eulerAngles = (Ocv::Core::Types_c::pCvPoint3D64f)(0x0));
extern "C" void __cdecl cvCalcMatMulDeriv(const Ocv::Core::Types_c::pCvMat A, const Ocv::Core::Types_c::pCvMat B, Ocv::Core::Types_c::pCvMat dABdA, Ocv::Core::Types_c::pCvMat dABdB);
extern "C" void __cdecl cvComposeRT(const Ocv::Core::Types_c::pCvMat _rvec1, const Ocv::Core::Types_c::pCvMat _tvec1, const Ocv::Core::Types_c::pCvMat _rvec2, const Ocv::Core::Types_c::pCvMat _tvec2, Ocv::Core::Types_c::pCvMat _rvec3, Ocv::Core::Types_c::pCvMat _tvec3, Ocv::Core::Types_c::pCvMat dr3dr1 = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dr3dt1 = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dr3dr2 = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dr3dt2 = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dt3dr1 = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dt3dt1 = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dt3dr2 = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dt3dt2 = (Ocv::Core::Types_c::pCvMat)(0x0));
extern "C" void __cdecl cvProjectPoints2(const Ocv::Core::Types_c::pCvMat object_points, const Ocv::Core::Types_c::pCvMat rotation_vector, const Ocv::Core::Types_c::pCvMat translation_vector, const Ocv::Core::Types_c::pCvMat camera_matrix, const Ocv::Core::Types_c::pCvMat distortion_coeffs, Ocv::Core::Types_c::pCvMat image_points, Ocv::Core::Types_c::pCvMat dpdrot = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dpdt = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dpdf = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dpdc = (Ocv::Core::Types_c::pCvMat)(0x0), Ocv::Core::Types_c::pCvMat dpddist = (Ocv::Core::Types_c::pCvMat)(0x0), double aspect_ratio = 0.000000E+00);
extern "C" void __cdecl cvFindExtrinsicCameraParams2(const Ocv::Core::Types_c::pCvMat object_points, const Ocv::Core::Types_c::pCvMat image_points, const Ocv::Core::Types_c::pCvMat camera_matrix, const Ocv::Core::Types_c::pCvMat distortion_coeffs, Ocv::Core::Types_c::pCvMat rotation_vector, Ocv::Core::Types_c::pCvMat translation_vector, int use_extrinsic_guess = 0x0);
extern "C" void __cdecl cvInitIntrinsicParams2D(const Ocv::Core::Types_c::pCvMat object_points, const Ocv::Core::Types_c::pCvMat image_points, const Ocv::Core::Types_c::pCvMat npoints, const Ocv::Core::Types_c::TCvSize image_size, Ocv::Core::Types_c::pCvMat camera_matrix, double aspect_ratio = 1.000000E+00);
extern "C" int __cdecl cvCheckChessboard(const void * image, const Ocv::Core::Types_c::TCvSize size);
extern "C" int __cdecl cvFindChessboardCorners(const void * image, const Ocv::Core::Types_c::TCvSize pattern_size, Ocv::Core::Types_c::pCvPoint2D32f corners, System::PInteger corner_count = (System::PInteger)(0x0), int flags = 0x3);
extern "C" void __cdecl cvDrawChessboardCorners(Ocv::Core::Types_c::pIplImage image, const Ocv::Core::Types_c::TCvSize pattern_size, Ocv::Core::Types_c::pCvPoint2D32f corners, int count, int pattern_was_found);
extern "C" double __cdecl cvCalibrateCamera2(const Ocv::Core::Types_c::pCvMat object_points, const Ocv::Core::Types_c::pCvMat image_points, const Ocv::Core::Types_c::pCvMat point_counts, const Ocv::Core::Types_c::TCvSize image_size, Ocv::Core::Types_c::pCvMat camera_matrix, Ocv::Core::Types_c::pCvMat distortion_coeffs, Ocv::Core::Types_c::pCvMat rotation_vectors, Ocv::Core::Types_c::pCvMat translation_vectors, int flags, const Ocv::Core::Types_c::TCvTermCriteria term_crit);
extern "C" void __cdecl cvCalibrationMatrixValues(const Ocv::Core::Types_c::pCvMat camera_matrix, const Ocv::Core::Types_c::TCvSize image_size, double aperture_width = 0.000000E+00, double aperture_height = 0.000000E+00, System::PDouble fovx = (System::PDouble)(0x0), System::PDouble fovy = (System::PDouble)(0x0), System::PDouble focal_length = (System::PDouble)(0x0), Ocv::Core::Types_c::pCvPoint2D64f principal_point = (Ocv::Core::Types_c::pCvPoint2D64f)(0x0), System::PDouble pixel_aspect_ratio = (System::PDouble)(0x0));
extern "C" double __cdecl cvStereoCalibrate(const Ocv::Core::Types_c::pCvMat object_points, const Ocv::Core::Types_c::pCvMat image_points1, const Ocv::Core::Types_c::pCvMat image_points2, const Ocv::Core::Types_c::pCvMat npoints, Ocv::Core::Types_c::pCvMat camera_matrix1, Ocv::Core::Types_c::pCvMat dist_coeffs1, Ocv::Core::Types_c::pCvMat camera_matrix2, Ocv::Core::Types_c::pCvMat dist_coeffs2, const Ocv::Core::Types_c::TCvSize image_size, Ocv::Core::Types_c::pCvMat R, Ocv::Core::Types_c::pCvMat T, Ocv::Core::Types_c::pCvMat E, Ocv::Core::Types_c::pCvMat F, const Ocv::Core::Types_c::TCvTermCriteria term_crit, int flags);
extern "C" void __cdecl cvStereoRectify(const Ocv::Core::Types_c::pCvMat camera_matrix1, const Ocv::Core::Types_c::pCvMat camera_matrix2, const Ocv::Core::Types_c::pCvMat dist_coeffs1, const Ocv::Core::Types_c::pCvMat dist_coeffs2, const Ocv::Core::Types_c::TCvSize image_size, const Ocv::Core::Types_c::pCvMat R, const Ocv::Core::Types_c::pCvMat T, Ocv::Core::Types_c::pCvMat R1, Ocv::Core::Types_c::pCvMat R2, Ocv::Core::Types_c::pCvMat P1, Ocv::Core::Types_c::pCvMat P2, Ocv::Core::Types_c::pCvMat Q, int flags, double alpha, const Ocv::Core::Types_c::TCvSize new_image_size, Ocv::Core::Types_c::pCvRect valid_pix_ROI1, Ocv::Core::Types_c::pCvRect valid_pix_ROI2);
extern "C" int __cdecl cvStereoRectifyUncalibrated(const Ocv::Core::Types_c::pCvMat points1, const Ocv::Core::Types_c::pCvMat points2, const Ocv::Core::Types_c::pCvMat F, const Ocv::Core::Types_c::TCvSize img_size, Ocv::Core::Types_c::pCvMat H1, Ocv::Core::Types_c::pCvMat H2, double threshold = 5.000000E+00);
extern "C" pCvStereoBMState __cdecl cvCreateStereoBMState(int preset = 0x0, int numberOfDisparities = 0x0);
extern "C" void __cdecl cvReleaseStereoBMState(pCvStereoBMState &state);
extern "C" void __cdecl cvFindStereoCorrespondenceBM(const void * left, const void * right, void * disparity, pCvStereoBMState state);
extern "C" Ocv::Core::Types_c::TCvRect __cdecl cvGetValidDisparityROI(const Ocv::Core::Types_c::TCvRect roi1, const Ocv::Core::Types_c::TCvRect roi2, int minDisparity, int numberOfDisparities, int SADWindowSize);
extern "C" void __cdecl cvValidateDisparity(void * disparity, const void * cost, int minDisparity, int numberOfDisparities, int disp12MaxDiff = 0x1);
extern "C" void __cdecl cvReprojectImageTo3D(const Ocv::Core::Types_c::pCvMat disparityImage, Ocv::Core::Types_c::pIplImage _3dImage, const Ocv::Core::Types_c::pCvMat Q, int handleMissingValues = 0x0);
}	/* namespace Calib3d_c */
}	/* namespace Ocv */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV_CALIB3D_C)
using namespace Ocv::Calib3d_c;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV)
using namespace Ocv;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Ocv_Calib3d_cHPP
